package com.hjx.movie.core.system.service.admin;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hjx.movie.core.system.vo.FileVo;
import com.hjx.movie.persistence.system.model.IvyMovie;
import com.hjx.movie.persistence.system.model.IvySysStaticData;
import org.springframework.cache.annotation.Cacheable;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * <p>Title:</p>
 * <p>Description:</p>
 *
 * @author hjx
 * @date 2021/1/31 - 17:03
 */
public interface IMovieService extends IService<IvyMovie>{
    List<IvySysStaticData> findAllMovieType();
    List<IvySysStaticData> findAllMovieArea();
    List<IvyMovie> findAllMovie();
    List<IvyMovie> findAllMovieWrapper(Wrapper<IvyMovie> wrapper);
    IvyMovie findMovieById(Long id);

    List<IvyMovie> findMovieByIds(Collection<Long> ids);
    List<IvyMovie> findMovieByIdsFor(Collection<Long> ids);

    boolean addMovie(IvyMovie movie);
    boolean deleteMovie(Long movieId);
    boolean updateMovie(IvyMovie movie);
    List<FileVo> getMovieResFileList(Long movieId, String realPath,String type);
    boolean deleteMovieRes(String fileName, String realPath);
    String getRealPath(Long id,String type);
    String getMovieResHttpBaseUrl(String type);
    IPage<IvyMovie> findAllByPage(Page<IvyMovie> page,String type);

    List<IvyMovie> queryMovieLike(String s);
}
